多容器 GRPC 服务通信 您所在的位置:网站首页 docker grpc 多容器 GRPC 服务通信

多容器 GRPC 服务通信

#多容器 GRPC 服务通信| 来源: 网络整理| 查看: 265

创建 docker network

docker network create flask-admin-dev

编排容器

# server version: "2" services: notify_service_dev: build: . image: notify-service:0.1 container_name: notify_service_dev volumes: - .:/code networks: - back ports: - "50051:50051" - "7001:7001" tty: true restart: always entrypoint: /bin/sh -c "npm run dev" networks: back: external: name: flask-admin-dev # client version: "2" services: mysql_dev: image: mysql:5.7.14 container_name: fa_mysql_dev environment: - MYSQL_ROOT_PASSWORD=Chuangyizhi2013, volumes: - ./mysql/my.cnf:/etc/mysql/my.cnf - ./init_database.sql:/docker-entrypoint-initdb.d/init_database.sql - ./mysql/data:/var/lib/mysql ports: - "13306:3306" networks: - back restart: always flask-admin_dev: build: . image: flask-admin-dev:0.1 container_name: flask-admin-dev volumes: - .:/code links: - mysql_dev environment: - ENV=dev - MYSQL_HOST=mysql_dev - MYSQL_USER=root - MYSQL_PASSWORD=Chuangyizhi2013, - MYSQL_DATABASE=flask_notify - MYSQL_PORT=3306 - FLASK_ENV=development networks: - back ports: - "5000:5000" tty: true restart: always entrypoint: /bin/sh -c "python app.py db upgrade && python app.py runserver -h 0.0.0.0 -p 5000" networks: back: external: name: flask-admin-dev # 注意:需要保证 server 和 client 在同一个 docker 网桥中

server 端启动服务

host: 0.0.0.0 或者 127.0.01

client 端连接 GRPC Service 需要使用 GRPC server 中的容器名连接

with grpc.insecure_channel(notify_service_dev:50051) as ch:

保证服务同一个网桥段下原因:docker 默认会为每个容器创建一个独立的名称空间,如果不指定同一网桥下容器 host,docker 默认会找本容器中的 localhost 地址,由于容器见网络是独立导致多个 GRPC 服务无法相互访问

参考:https://stackoverflow.com/questions/44642241/use-grpc-to-communicate-between-containers



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有